# _*_ coding: utf-8 _*_
# Date: 2019/12/10 0010 12:51
# Author: Mijiu
# Version: 1.0
import json
import time
import requests
import pandas as pd
import cons as ct
# 东方财富网
'''
举例
目标网站 : 东方财富网 (排行)  沪深A股
网站是使用Ajax异步加载 
url: http://quote.eastmoney.com/center/gridlist.html#hs_a_board

————————————————
版权声明：本文为CSDN博主「米九」的原创文章，遵循CC
BY - SA版权协议，转载请附上原文出处链接及本声明。
原文链接：https: // blog.csdn.net / gzw12138 / article / details / 103704652'''


def getPage(number):
    '''
    对目标网站进行数据采集
    :param number: 采集多少页
    :return: 采集到的数据
    '''
    ct._write_console()
    strUrl = 'http://33.push2.eastmoney.com/api/qt/clist/get'
    params = {
        'cb': 'jQuery1124011214511892561374_1575904469870',
        'pn': str(number),
        'pz': '40',
        'po': '1',
        'np': '1',
        'ut': 'bd1d9ddb04089700cf9c27f6f7426281',
        'fltt': '2',
        'invt': '2',
        'fid': 'f3',
        'fs': 'm:0 t:6,m:0 t:13,m:0 t:80,m:1 t:2,m:1 t:23',
        'fields': 'f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152',
        '_': '1575904469955'
    }
    response = requests.get(strUrl, params=params)

    # 处理多余数据方便转换为字典
    data = response.text.replace("jQuery1124011214511892561374_1575904469870", '').replace('(', "").replace(')','').replace(';', '')
    if json.loads(data).get('data')==None:
        return None
    else:
        _json = json.loads(data).get('data').get('diff')
        return _json


def Get_Data(num):
    '''
    对东方财富网抓抓取的数据进行处理
    :return:
    '''
    num_a = 0
    df=pd.DataFrame()
    for i in range(1, num):
        time.sleep(0.8)
        _json= getPage(i)
        newdf=pd.DataFrame(_json)
        if newdf.shape[0] > 0:
            df = df.append(newdf, ignore_index=True)
        else:
            break
    return df
#


if __name__ == '__main__':
    Get_Data(30)  # 传入100代表采集100页数据
    #1.行业板块、
    # 2.资金流向
    #3.主力排名
    #4.龙虎榜http://data.eastmoney.com/DataCenter_V3/stock2016/TradeDetail/pagesize=50,page=1,sortRule=-1,sortType=,startDate=2020-03-20,endDate=2020-03-23,gpfw=0,js=var%20data_tab_2.html?
    #源网址 http://data.eastmoney.com/DataCenter_V3/stock2016/TradeDetail/pagesize=200,page=1,sortRule=-1,sortType=,startDate=2021-09-17,endDate=2021-09-17,gpfw=0,js=vardata_tab_1.html